package com.chy.blog_server.modular.system.entity;

import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chy.blog_server.core.util.UserUtil;
import com.chy.blog_server.modular.sharCore.BaseEntity;
import lombok.Getter;
import lombok.Setter;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;


/**
 * 描述：菜单表 实体类
 * 作者：chenhuiyan
 * 时间：2019/9/28 12:03
 */
@Getter
@Setter
@TableName(value = "sys_menu")
public class SysMenu extends BaseEntity {

    /**
     * 父级编号
     */
    @TableField(value = "parent_id")
    private String parentId;

    /**
     * 所有父级编号
     */
    @TableField(value = "parent_ids")
    private String parentIds;

    /**
     * 名称
     */
    private String name;

    /**
     * 菜单图标
     */
    private String icon;

    /**
     * 链接
     */
    private String href;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 是否在菜单中显示(0是，1否)
     */
    @TableField(value = "is_show")
    private Integer isShow;

    /**
     * 类型（0后台菜单，1前台菜单，2情侣空间）
     */
    private Integer type;

    /**
     * 删除标记(0:否,1:是)
     */
    @TableField(value = "del_flag")
    private Integer delFlag;

    /**
     * 添加数据时调用该方法生成
     * @param request
     */
    public void preInsert(HttpServletRequest request){
        SysUser user = UserUtil.getUserFromSession(request);
        this.setId(IdUtil.simpleUUID());
        this.setCreateBy(user.getId());
        this.setCreateDate(new Date());
        this.setUpdateBy(user.getId());
        this.setUpdateDate(new Date());
    }

    /**
     * 更新数据时调用该方法生成
     * @param request
     */
    public void preUpdate(HttpServletRequest request){
        SysUser user = UserUtil.getUserFromSession(request);
        this.setUpdateBy(user.getId());
        this.setUpdateDate(new Date());
    }

}
